import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad

# 中文和负号正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 定义被积函数（含间断点仍可积）
def f(t):
    return 1 if t < 3 else 2  # 在t=3处有跳跃间断点

# 定义变上限积分函数
def F(x):
    result, _ = quad(f, 2, x)
    return result

# 生成x值
x_values = np.linspace(2, 5, 100)
# 计算对应的F(x)值
y_values = [F(x) for x in x_values]

# 绘制函数图像
plt.figure(figsize=(10, 6))
plt.plot(x_values, y_values)
plt.xlabel('x')
plt.ylabel('F(x)')
plt.title('变上限积分函数的连续性验证')
plt.grid(True)
plt.show()